import { AddArticleCommnetResponse, ArticleDetailResponse, ArticleCommentResponse } from "@/types/data";
import request from "@/utils/request";

/**
 * 获取文章详情
 * @param id 文章ID
 * @returns 
 */
export function getDetailApi(id: string): Promise<ArticleDetailResponse> {
  return request.get(`/articles/${id}`)
}

// 关注作者
/**
 * 
 * @param id aut_id（作者 id）
 * @returns 
 */
export function followApi(id: string) {
  return request.post('/user/followings', {
    target: id,
  })
}
// 取关作者
export function unFollowApi(id: string) {
  return request.delete(`/user/followings/${id}`)
}

// 获取评论数据
/**
 *
 * @param type a或c 评论类型，a-对文章(article)的评论，c-对评论(comment)的回复
 * @param id 文章id或评论id
 * @param offset 获取评论数据的偏移量，表示从此id的数据向后取，不传表示从第一页开始读取数据
 * @returns
 */
export function getCommentsApi(
  type: string,
  id: string,
  offset: string | null
): Promise<ArticleCommentResponse> {
  return request.get('/comments', { params: { type, source: id, offset } })
}

// 对文章发表评论
type DataComment = {
  target: string // 评论的目标id（评论文章即为文章id，对评论进行回复则为评论id）
  content: string // 评论/回复内容
  art_id?: string // 文章id，对评论内容发表回复时，需要传递此参数，表明所属文章id。对文章进行评论，不要传此参数。
}
export function addCommentApi(
  data: DataComment
): Promise<AddArticleCommnetResponse> {
  return request.post('/comments', data)
}